.. _cmmCmpQue_Enque: cmmCmpQue_Enque ============================ ---------------------------- SYNOPSIS ``````````` .. code-block:: none VT_I4 cmmCmpQue_Enque( [in] VT_I4 Axis, [in] VT_I4 CmpSrc, [in] VT_I4 CmpMethod, [in] VT_I4 CmpData ) DESCRIPTION ``````````````` - cmmCmpQue_Enque() 함수는 예약 큐에 위치비교 조건 및 비교데이터를 등록합니다. 여기에 등록된 위치비교 데이터는 최초의 데이터부터 순차적으로 비교됩니다. PARAMETER ``````````` - Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다. \ - CmpSrc : cmmCmpQue_Enque 함수의 인자이며, 비교 대상 카운터를 설정합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 또는 cmCNT_COMM, Command Counter 1 또는 cmCNT_FEED, Feedback Counter 2 또는 cmCNT_DEV, Deviation Counter : Command 와 Feedback counter 의 편차 카운터 3 또는 cmCNT_GEN, General Counter : 사용자의 정의에 따라 여러가지 용도로 사용될 수 있는 카운터 - CmpMethod : cmmCmpQue_Enque 함수의 인자이며, CMP 신호 출력 조건을 설정합니다. 즉, 비교 대상 카운트값과 사용자가 지정한 데이터 값을 어떻게 비교하여 CMP 신호 출력을 발생할지에 대한 조건을 결정합니다. .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 0 (cmDISABLE), Disable comparator 1 (cmEQ_BIDIR), CmpData = CmpSrc_Value (regardless of counting direction) 2 (cmEQ_PDIR), CmpData = CmpSrc_Value (while counting up) 3 (cmEQ_NDIR), CmpData = CmpSrc_Value (while counting down) 4 (cmLESS), CmpData > CmpSrc_Value 5 (cmGREATER), CmpData < CmpSrc_Value - CmpData: cmmCmpQue_Enque 함수의 인자이며, CMP 신호 출력 위치를 설정합니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 cmERR_NONE, 수행 성공 EXAMPLE ````````` - 아래의 예제에서는 X 축에 대하여 CMP 큐의 크기 만큼 반복하면서 매 1000pulse 위치마다 비교지점을 설정하는 것입니다. 이 때 비교되는 카운터는 Command Counter 가 되며, 증가하는 방향(cmEQ_PDIR)으로 정확히 일치하는 경우에만 CMP 가 출력되도록 지정하였습니다. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ int i = 0; for(i = 0; i < DEFAULT_QUE_SIZE; i++) { cmmCmpQue_Enque( cmX1, cmCNT_COMM, cmEQ_PDIR, 1000 * i ); }